package com.factory.rental.service;

import com.factory.rental.model.Room;
import com.factory.rental.dto.RoomDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Optional;

public interface RoomService {
    Room saveRoom(RoomDTO roomDTO);
    Optional<Room> getRoomById(Long id);
    Optional<Room> getRoomByNumber(String roomNumber);
    List<Room> getRoomsByBuilding(String building);
    List<Room> getRoomsByFloor(Integer floor);
    List<Room> getRoomsByStatus(Room.RoomStatus status);
    List<Room> getRoomsByLayout(String layout);
    Room updateRoom(Long id, RoomDTO roomDTO);
    void deleteRoom(Long id);
    Page<Room> getAllRooms(Pageable pageable);
    void updateRoomStatus(Long id, Room.RoomStatus status);
}